{
    "id": "api",
    "type": "application",
    "value": {
        "author": "Sander Mertens",
        "description": "Test project for flecs",
        "public": false,
        "coverage": false,
        "use": [
            "flecs"
        ]
    },
    "test": {
        "testsuites": [{
            "id": "Id",
            "testcases": [
                "0_is_wildcard",
                "wildcard_is_wildcard",
                "any_is_wildcard",
                "entity_is_wildcard",
                "pair_is_wildcard",
                "pair_w_rel_wildcard_is_wildcard",
                "pair_w_obj_wildcard_is_wildcard",
                "pair_w_wildcard_wildcard_is_wildcard",
                "pair_w_rel_any_is_wildcard",
                "pair_w_obj_any_is_wildcard",
                "pair_w_any_any_is_wildcard",
                "pair_w_override_is_wildcard",
                "pair_w_toggle_is_wildcard",
                "tag_id_is_tag",
                "component_id_is_tag",
                "pair_id_is_tag",
                "pair_id_w_rel_component_is_tag",
                "pair_id_w_obj_component_is_tag",
                "pair_id_w_rel_component_obj_wildcard_is_tag",
                "pair_id_w_obj_wildcard_is_tag",
                "pair_id_w_tag_property_w_obj_component_is_tag",
                "pair_id_w_tag_property_w_obj_wildcard_is_tag",
                "id_w_override_is_tag",
                "id_w_toggle_is_tag",
                "pair_id_override_is_tag",
                "pair_id_toggle_is_tag",
                "make_pair",
                "make_pair_of_pair",
                "make_pair_of_pair_tgt"
            ]
        }, {
            "id": "Entity",
            "testcases": [
                "init_id",
                "init_id_name",
                "init_id_path",
                "init_id_add_1_comp",
                "init_id_add_2_comp",
                "init_id_w_scope",
                "init_id_name_w_scope",
                "init_id_path_w_scope",
                "init_id_fullpath_w_scope",
                "init_id_fullpath_w_scope_existing",
                "init_id_name_1_comp",
                "init_id_name_2_comp",
                "init_id_name_2_comp_w_scope",
                "id_add_1_comp",
                "id_add_2_comp",
                "init_id_path_w_sep",
                "find_id_name",
                "find_w_existing_id_name",
                "find_id_name_w_scope",
                "find_id_path",
                "find_id_path_w_scope",
                "find_id_name_match",
                "find_id_name_match_w_scope",
                "find_id_path_match",
                "find_id_path_match_w_scope",
                "find_id_name_mismatch",
                "find_id_name_mismatch_w_scope",
                "find_id_path_mismatch",
                "find_id_path_mismatch_w_scope",
                "find_id_add_1_comp",
                "find_id_add_2_comp",
                "init_w_scope_name",
                "init_w_core_name",
                "init_w_with",
                "init_w_with_w_name",
                "init_w_with_w_scope",
                "init_w_with_w_name_scope",
                "is_valid",
                "is_recycled_valid",
                "is_0_valid",
                "is_junk_valid",
                "is_not_alive_valid",
                "is_nonzero_gen_valid",
                "init_w_name_deferred",
                "init_w_name_twice_deferred",
                "init_w_nested_name_twice_deferred",
                "init_w_scope_name_twice_deferred",
                "init_w_childof_name_twice_deferred",
                "init_w_childof_nested_name_twice_deferred",
                "init_w_name_staged",
                "record_find_for_empty",
                "record_find",
                "record_find_from_stage",
                "ensure_zero_gen",
                "ensure_nonzero_gen",
                "ensure_zero_gen_exists",
                "ensure_nonzero_gen_exists",
                "ensure_zero_gen_exists_alive",
                "ensure_nonzero_gen_exists_alive",
                "set_scope_w_entity_init_from_stage",
                "entity_init_w_scope_twice",
                "entity_init_w_childof_twice",
                "entity_init_w_childof_nested_name_twice",
                "entity_init_w_childof_and_scope",
                "entity_init_w_childof_and_scope_and_scoped_name",
                "entity_init_w_childof_and_no_name",
                "deferred_entity_init_w_childof_and_scope",
                "deferred_entity_init_w_childof_and_scope_and_scoped_name",
                "deferred_entity_init_w_childof_and_no_name",
                "entity_init_w_empty_string_name",
                "entity_init_w_empty_string_symbol",
                "set_name_w_0_twice",
                "new_entity_twice",
                "new_entity_scoped_twice",
                "defer_component_init",
                "defer_component_init_w_symbol",
                "defer_entity_init_w_symbol",
                "staged_set_name_n_stages",
                "staged_set_symbol_n_stages",
                "entity_init_w_add_childof_no_name",
                "entity_w_short_notation",
                "override_inherited_symbol",
                "use_low_id_for_component",
                "get_depth",
                "get_depth_non_acyclic",
                "get_depth_empty",
                "get_depth_2_paths",
                "entity_init_w_empty_sep",
                "entity_init_w_empty_sep_from_scope",
                "entity_init_w_empty_sep_w_prefix",
                "set_name_w_same_ptr",
                "set_name_w_overlapping_ptr",
                "defer_set_name_w_overlapping_ptr",
                "ensure_from_stage",
                "ensure_after_deleted_1_entity",
                "ensure_after_deleted_2_entities",
                "defer_entity_init_w_set_name_w_add_childof",
                "entity_w_digit_name",
                "entity_w_existing_digit_name",
                "entity_w_conflicting_digit_name",
                "set_generation_on_nonempty_entity",
                "set_generation_while_deferred",
                "commit_w_on_add",
                "commit_w_on_remove",
                "commit_w_cmd_in_observer",
                "entity_init_existing_no_sep"
            ]
        }, {
            "id": "Search",
            "testcases": [
                "search",
                "search_wildcard",
                "search_wildcard_w_offset",
                "search_relation_wildcard_w_offset",
                "search_pair_w_any_rel",
                "search_pair_w_any_obj",
                "search_follow_relation_lvl_0",
                "search_follow_relation_lvl_1",
                "search_follow_relation_lvl_2",
                "search_follow_relation_lvl_3",
                "search_first_lvl_0",
                "search_first_lvl_1",
                "search_first_lvl_2",
                "search_first_lvl_3",
                "search_relation_wildcard",
                "search_relation_at_offset",
                "search_relation_inherit_from_parent",
                "search_relation_dont_inherit",
                "search_relation_dont_inherit_from_parent",
                "search_relation_exclusive",
                "search_relation_union",
                "search_relation_union_wildcard",
                "search_relation_union_pair"
            ]
        }, {
            "id": "Event",
            "testcases": [
                "table_1_id_w_trigger",
                "table_2_ids_w_trigger",
                "table_1_id_w_observer",
                "table_2_ids_w_observer",
                "emit_event_for_empty_table",
                "emit_table_event",
                "emit_staged_from_world",
                "emit_staged_from_stage",
                "emit_staged_from_world_observer",
                "emit_staged_from_stage_observer",
                "emit_for_entity",
                "emit_custom_for_any",
                "emit_custom_implicit_any",
                "emit_custom_empty_type",
                "emit_w_param",
                "emit_w_const_param",
                "emit_nested",
                "enqueue_event_1_id",
                "enqueue_event_2_ids",
                "enqueue_event_w_data",
                "enqueue_event_w_data_move",
                "enqueue_event_w_data_copy",
                "enqueue_event_w_const_data_no_copy",
                "enqueue_event_not_alive",
                "enqueue_event_not_alive_w_data_move",
                "enqueue_event_not_alive_w_data_copy",
                "enqueue_event_not_alive_after_delete_during_merge",
                "enqueue_event_not_alive_w_data_move_after_delete_during_merge",
                "enqueue_event_not_alive_w_data_copy_after_delete_during_merge",
                "enqueue_event_not_deferred",
                "enqueue_event_not_deferred_to_async",
                "enqueue_custom_implicit_any",
                "enqueue_custom_after_large_cmd",
                "enqueue_on_readonly_world"
            ]
        }, {
            "id": "New",
            "setup": true,
            "testcases": [
                "empty",
                "component",
                "tag",
                "redefine_component",
                "recycle_id_empty",
                "recycle_id_w_entity",
                "recycle_empty_staged_delete",
                "recycle_staged_delete",
                "new_id",
                "new_component_id",
                "new_hi_component_id",
                "new_component_id_skip_used",
                "new_component_id_skip_to_hi_id",
                "new_w_entity_0",
                "create_w_explicit_id_2_worlds",
                "new_w_id_0_w_with",
                "new_w_id_w_with",
                "new_w_type_0_w_with",
                "new_w_type_w_with",
                "new_w_id_w_with_w_scope",
                "new_w_type_w_with_w_scope",
                "new_w_id_w_with_defer",
                "new_w_id_w_with_defer_w_scope",
                "new_w_type_w_with_defer",
                "new_w_type_w_with_defer_w_scope"
            ]
        }, {
            "id": "New_w_Count",
            "testcases": [
                "empty",
                "component",
                "tag",
                "bulk_init_empty",
                "bulk_init_empty_w_entities",
                "bulk_init_1_tag",
                "bulk_init_1_tag_w_entities",
                "bulk_init_2_tags",
                "bulk_init_1_component",
                "bulk_init_2_components",
                "bulk_init_1_component_w_value",
                "bulk_init_2_components_w_value",
                "bulk_init_2_components_tag_w_value",
                "add_after_bulk",
                "add_after_bulk_w_component",
                "add_after_bulk_w_ctor",
                "recycle_1_of_2",
                "recycle_1_of_3",
                "recycle_2_of_3",
                "bulk_init_w_table"
            ]
        }, {
            "id": "Add",
            "testcases": [
                "zero",
                "component",
                "component_again",
                "2_components",
                "2_components_again",
                "2_components_overlap",
                "component_to_nonempty",
                "component_to_nonempty_again",
                "component_to_nonempty_overlap",
                "tag",
                "add_entity",
                "remove_entity",
                "add_0_entity",
                "remove_0_entity",
                "invalid_add_wildcard",
                "invalid_add_pair_w_wildcard",
                "invalid_add_pair_w_wildcard_rel",
                "invalid_add_pair_w_wildcard_obj",
                "invalid_add_any",
                "invalid_add_pair_w_any",
                "invalid_add_pair_w_any_rel",
                "invalid_add_pair_w_any_obj",
                "invalid_pair_w_0",
                "invalid_pair_w_0_rel",
                "invalid_pair_w_0_obj",
                "add_random_id"
            ]
        }, {
            "id": "Switch",
            "testcases": [
                "get_case_no_switch",
                "get_case_set",
                "get_case_change",
                "remove_case",
                "remove_last",
                "delete_first",
                "delete_last",
                "delete_first_last",
                "3_entities_same_case",
                "2_entities_1_change_case",
                "3_entities_change_case",
                "query_switch",
                "query_1_case_1_type",
                "query_1_case_2_types",
                "query_2_cases_1_type",
                "query_2_cases_2_types",
                "query_after_remove",
                "add_case_in_stage",
                "change_case_in_stage",
                "change_one_case_in_stage",
                "remove_switch_in_stage",
                "switch_no_match_for_case",
                "empty_entity_has_case",
                "zero_entity_has_case",
                "add_to_entity_w_switch",
                "add_pair_to_entity_w_switch",
                "sort",
                "recycled_tags",
                "query_recycled_tags",
                "single_case",
                "match_switch_on_base_instance",
                "switch_w_bitset_query",
                "switch_w_bitset_query_inv",
                "switch_w_bitset_query_2_elems",
                "switch_w_bitset_query_2_elems_skip",
                "switch_w_bitset_query_elems_interleaved",
                "switch_w_bitset_query_elems_interleaved_2_types",
                "has_wildcard",
                "remove_wildcard",
                "same_table_after_change",
                "component_relation",
                "delete_case_trigger_after_delete_switch",
                "add_2",
                "add_2_reverse",
                "add_switch_to_prefab_instance",
                "get_case_w_generation",
                "get_case_w_generation_not_alive"
            ]
        }, {
            "id": "EnabledComponents",
            "testcases": [
                "is_component_enabled",
                "is_empty_entity_disabled",
                "is_0_entity_disabled",
                "is_0_component_disabled",
                "is_nonexist_component_disabled",
                "is_enabled_component_enabled",
                "is_disabled_component_enabled",
                "has_enabled_component",
                "is_enabled_after_add",
                "is_enabled_after_remove",
                "is_enabled_after_disable",
                "is_disabled_after_enable",
                "is_enabled_randomized",
                "is_enabled_after_add_randomized",
                "is_enabled_after_randomized_add_randomized",
                "is_enabled_2",
                "is_enabled_3",
                "is_enabled_2_after_add",
                "is_enabled_3_after_add",
                "is_pair_enabled",
                "is_enabled_pair_enabled",
                "is_disabled_pair_enabled",
                "has_enabled_pair",
                "is_pair_enabled_after_add",
                "is_pair_enabled_after_remove",
                "is_pair_enabled_after_disable",
                "is_pair_disabled_after_enable",
                "is_pair_enabled_2",
                "is_pair_enabled_3",
                "is_pair_enabled_2_after_add",
                "is_pair_enabled_3_after_add",
                "query_disabled",
                "query_disabled_skip_initial",
                "query_disabled_pair",
                "query_disabled_pair_skip_initial",
                "query_mod_2",
                "query_mod_8",
                "query_mod_64",
                "query_mod_256",
                "query_mod_1024",
                "query_enable_mod_10",
                "query_mod_2_2_bitsets",
                "query_mod_8_2_bitsets",
                "query_mod_64_2_bitsets",
                "query_mod_256_2_bitsets",
                "query_mod_1024_2_bitsets",
                "query_randomized_2_bitsets",
                "query_randomized_3_bitsets",
                "query_randomized_4_bitsets",
                "defer_enable",
                "sort",
                "table_move_2_from_3"
            ]
        }, {
            "id": "Remove",
            "testcases": [
                "zero",
                "1_of_1",
                "1_of_2",
                "2_of_2",
                "2_of_3",
                "1_of_1_again",
                "2_again",
                "2_overlap",
                "1_from_empty",
                "not_added"
            ]
        }, {
            "id": "GlobalComponentIds",
            "testcases": [
                "declare",
                "declare_w_entity",
                "declare_2_world",
                "declare_tag",
                "declare_tag_w_entity",
                "declare_entity",
                "reuse_300_component_ids"
            ]
        }, {
            "id": "Hierarchies",
            "setup": true,
            "testcases": [
                "empty_scope",
                "get_parent",
                "get_parent_from_nested",
                "get_parent_from_nested_2",
                "get_object_from_0",
                "tree_iter_empty",
                "tree_iter_1_table",
                "tree_iter_2_tables",
                "path_depth_0",
                "path_depth_1",
                "path_depth_2",
                "path_core",
                "path_core_w_prefix",
                "path_core_w_empty_prefix",
                "path_this_w_empty_prefix",
                "path_wildcard_w_empty_prefix",
                "path_any_w_empty_prefix",
                "rel_path_from_root",
                "rel_path_from_self",
                "rel_path_depth_1",
                "rel_path_depth_2",
                "rel_path_no_match",
                "path_custom_sep",
                "path_custom_prefix",
                "path_prefix_rel_match",
                "path_prefix_rel_no_match",
                "fullpath_for_core",
                "path_w_number",
                "lookup_depth_0",
                "lookup_depth_1",
                "lookup_depth_2",
                "lookup_rel_0",
                "lookup_rel_1",
                "lookup_rel_2",
                "lookup_custom_sep",
                "lookup_custom_prefix",
                "lookup_custom_prefix_from_root",
                "lookup_self",
                "lookup_in_parent_from_scope",
                "lookup_in_root_from_scope",
                "lookup_number",
                "delete_children",
                "scope_set",
                "scope_set_again",
                "scope_set_w_new",
                "scope_set_w_new_staged",
                "scope_set_w_lookup",
                "scope_component",
                "scope_component_no_macro",
                "new_from_path_depth_0",
                "new_from_path_depth_1",
                "new_from_path_depth_2",
                "new_from_path_existing_depth_0",
                "new_from_path_existing_depth_1",
                "new_from_path_existing_depth_2",
                "add_path_depth_0",
                "add_path_depth_1",
                "add_path_depth_2", 
                "add_path_existing_depth_0",
                "add_path_existing_depth_1",
                "add_path_existing_depth_2",
                "add_path_from_scope",
                "add_path_from_scope_new_entity",
                "add_root_path_to_child",
                "add_parent_path_from_root_to_child",
                "new_w_child_in_root",
                "delete_child",
                "delete_2_children",
                "delete_2_children_different_type",
                "delete_tree_2_levels",
                "delete_tree_3_levels",
                "delete_tree_count_tables",
                "delete_tree_staged",
                "delete_tree_empty_table",
                "delete_tree_recreate",
                "delete_tree_w_onremove",
                "delete_tree_w_dtor",
                "get_child_count",
                "get_child_count_2_tables",
                "get_child_count_no_children",
                "scope_iter_after_delete_tree",
                "add_child_after_delete_tree",
                "add_child_to_recycled_parent",
                "get_type_after_recycled_parent_add",
                "rematch_after_add_to_recycled_parent",
                "cascade_after_recycled_parent_change",
                "long_name_depth_0",
                "long_name_depth_1",
                "long_name_depth_2",
                "ensure_1_parent_after_adding_2",
                "ensure_child_alive_after_deleting_prev_parent",
                "lookup_after_root_to_parent_move",
                "lookup_after_parent_to_root_move",
                "lookup_after_parent_to_parent_move",
                "lookup_after_clear_from_root",
                "lookup_after_clear_from_parent",
                "lookup_after_delete_from_root",
                "lookup_after_delete_from_parent",
                "defer_batch_remove_name_w_add_childof",
                "defer_batch_remove_childof_w_add_name"
            ]
        }, {
            "id": "FixedHierarchies",
            "testcases": [
                "make_fixed_1_lvl",
                "make_fixed_1_lvl_w_init",
                "make_fixed_1_lvl_w_init_comp",
                "make_fixed_1_lvl_w_init_comp_after_tree_fixed",
                "make_fixed_1_lvl_2_entities",
                "make_fixed_1_lvl_2_tables",
                "make_fixed_2_lvl",
                "make_fixed_2_lvl_2_tables",
                "make_fixed_3_lvl",
                "make_fixed_3_lvl_w_name",
                "make_fixed_3_2_lvl_w_name",
                "make_fixed_2_lvl_nested",
                "make_fixed_3_lvl_nested",
                "make_fixed_1_lvl_after_delete",
                "get_target_1_lvl",
                "get_target_2_lvl",
                "get_depth_1_lvl",
                "get_depth_2_lvl",
                "get_depth_after_reparent_root",
                "delete_fixed_1_lvl",
                "delete_fixed_2_lvl",
                "delete_with_fixed_1_lvl",
                "delete_with_fixed_2_lvl",
                "query_w_parent_field_1_lvl",
                "query_w_parent_field_1_lvl_w_init",
                "query_w_parent_field_1_lvl_w_init_comp_after_tree_fixed",
                "query_w_parent_field_2_lvl",
                "query_w_parent_field_1_fixed_1_regular",
                "query_w_parent_field_only_fixed_1_lvls",
                "query_w_parent_field_fixed_1_lvls_no_match",
                "query_w_parent_field_fixed_1_lvls_2_no_match",
                "query_w_parent_field_fixed_1_lvls_match_no_match",
                "query_w_parent_field_fixed_1_lvls_no_match_match",
                "query_w_parent_field_2_fixed_2_lvls",
                "query_w_cascade_field_2_lvl",
                "query_next_table",
                "query_next_table_1_elem",
                "query_next_table_1_elem_no_match",
                "query_nested_make_fixed",
                "query_nested_make_fixed_w_optional",
                "query_nested_make_fixed_w_optional_match_children_only",
                "query_nested_w_2_parents_make_fixed",
                "query_table_w_3_parents",
                "query_w_parent_change_detection_1st",
                "query_w_parent_change_detection_2nd",
                "query_w_parent_change_detection_iter_twice",
                "query_w_parent_change_detection_iter_twice_each_parent",
                "query_w_parent_change_detection_1st_populate_when_changed",
                "query_w_parent_change_detection_2nd_populate_when_changed",
                "query_w_parent_change_detection_iter_twice_populate_when_changed",
                "query_w_parent_change_detection_iter_twice_each_parent_populate_when_changed",
                "staged_query_w_parent_field_1_lvl",
                "staged_query_w_parent_field_2_lvl",
                "staged_query_w_parent_field_1_fixed_1_regular",
                "staged_query_w_cascade_field_2_lvl",
                "add_to_fixed",
                "remove_from_fixed",
                "delete_fixed",
                "clear_fixed",
                "make_fixed_1_lvl_w_name",
                "make_fixed_2_lvl_w_name",
                "make_fixed_1_lvl_w_name_keep_name",
                "make_fixed_2_lvl_w_name_keep_name",
                "make_fixed_2_lvl_lose_depth",
                "make_fixed_3_lvl_lose_depth"
            ]
        }, {
            "id": "Has",
            "testcases": [
                "zero",
                "1_of_0",
                "1_of_1",
                "1_of_2",
                "1_of_empty",
                "has_in_progress",
                "has_of_zero",
                "owns",
                "owns_wildcard",
                "owns_wildcard_pair",
                "has_entity",
                "has_entity_0",
                "has_entity_0_component",
                "has_entity_owned",
                "has_entity_owned_0",
                "has_entity_owned_0_component",
                "has_wildcard",
                "has_wildcard_pair"
            ]
        }, {
            "id": "Count",
            "testcases": [
                "count_empty",
                "count_w_entity_0",
                "count_1_component",
                "count_disabled",
                "count_prefab"
            ]
        }, {
            "id": "Get_component",
            "setup": true,
            "testcases": [
                "get_empty",
                "get_1_from_1",
                "get_1_from_2",
                "get_2_from_2",
                "get_2_from_3",
                "get_1_from_2_in_progress_from_main_stage",
                "get_1_from_2_add_in_progress",
                "get_both_from_2_add_in_progress",
                "get_both_from_2_add_remove_in_progress",
                "get_childof_component",
                "get_mut_equal_get",
                "get_tag",
                "get_pair_tag",
                "get_wildcard"
            ]
        }, {
            "id": "Reference",
            "setup": true,
            "testcases": [
                "get_ref",
                "get_ref_after_add",
                "get_ref_after_remove",
                "get_ref_after_delete",
                "get_ref_after_realloc",
                "get_ref_after_realloc_w_lifecycle",
                "get_ref_staged",
                "get_ref_after_new_in_stage",
                "get_ref_monitored",
                "get_ref_w_low_id_tag",
                "get_ref_w_low_id_tag_after_add",
                "get_nonexisting",
                "aba_table"
            ]
        }, {
            "id": "Delete",
            "setup": true,
            "testcases": [
                "delete_1",
                "delete_1_again",
                "delete_recycled_tag_again",
                "delete_empty",
                "delete_nonexist",
                "delete_1st_of_3",
                "delete_2nd_of_3",
                "delete_3rd_of_3",
                "delete_2_of_3",
                "delete_3_of_3",
                "delete_w_on_remove",
                "clear_1_component",
                "clear_2_components",
                "alive_after_delete",
                "alive_after_clear",
                "alive_after_staged_delete",
                "alive_while_staged",
                "alive_while_staged_w_delete",
                "alive_while_staged_w_delete_recycled_id",
                "alive_after_recycle",
                "delete_recycled",
                "get_alive_for_alive",
                "get_alive_for_recycled",
                "get_alive_for_not_alive",
                "get_alive_w_generation_for_recycled_alive",
                "get_alive_w_generation_for_recycled_not_alive",
                "get_alive_for_0",
                "get_alive_for_nonexistent",
                "move_w_dtor_move",
                "move_w_dtor_no_move",
                "move_w_no_dtor_move",
                "wrap_generation_count"
            ]
        }, {
            "id": "OnDelete",
            "testcases": [
                "flags",
                "id_default",
                "id_remove",
                "id_delete",
                "relation_default",
                "relation_remove",
                "relation_delete",
                "object_default",
                "object_remove",
                "object_delete",
                "id_throw",
                "relation_throw",
                "object_throw",
                "object_mixed",
                "id_remove_no_instances",
                "id_delete_no_instances",
                "id_throw_no_instances",
                "cyclic_self",
                "nonempty_cyclic_self",
                "cyclic_id_default",
                "cyclic_id_remove",
                "cyclic_id_remove_both",
                "cyclic_id_delete",
                "cyclic_id_delete_both",
                "cyclic_relation_default",
                "cyclic_relation_remove",
                "cyclic_relation_remove_both",
                "cyclic_relation_delete",
                "cyclic_relation_delete_both",
                "cyclic_object_default",
                "cyclic_object_remove",
                "cyclic_object_delete",
                "cyclic_overlapping_table",
                "cyclic_overlapping_new_tables",
                "cyclic_object_mixed",
                "cyclic_storage_table",
                "cyclic_storage_table_2",
                "cyclic_storage_table_3",
                "cyclic_set_empty",
                "2_acyclic_relations_w_cycle",
                "remove_2_comps",
                "remove_2_comps_to_existing_table",
                "delete_recursive",
                "component_throw",
                "remove_2_relations",
                "remove_object_w_2_relations",
                "remove_object_w_5_relations",
                "remove_object_w_50_relations",
                "remove_object_w_50_relations_3_tables",
                "remove_object_w_3_relations_interleaved",
                "remove_id_from_2_tables",
                "remove_relation_from_2_tables",
                "remove_object_from_2_tables",
                "remove_id_and_relation",
                "remove_id_and_relation_from_2_tables",
                "stresstest_many_objects",
                "stresstest_many_relations",
                "stresstest_many_objects_on_delete",
                "stresstest_many_relations_on_delete",
                "empty_table_w_on_remove",
                "delete_table_in_on_remove_during_fini",
                "delete_other_in_on_remove_during_fini",
                "remove_id_w_role",
                "remove_rel_w_override_pair",
                "remove_obj_w_override_pair",
                "remove_rel_w_override_pair_after_on_delete_target",
                "remove_rel_w_override_pair_2_ids",
                "remove_obj_w_override_pair_2_ids",
                "remove_obj_w_override_pair_3_ids",
                "remove_mixed_w_override_pair_3_ids",
                "merge_pair_component",
                "delete_with_tag",
                "delete_with_component",
                "delete_with_pair",
                "delete_with_object_wildcard",
                "delete_with_relation_wildcard",
                "delete_with_component_after_delete_cyclic_self",
                "delete_with_component_after_delete_cyclic",
                "delete_with_component_after_delete_cyclic_w_alive_moved",
                "delete_all_with_entity",
                "remove_childof_entity",
                "remove_childof_wildcard",
                "delete_child_of_delete_with",
                "deep_clean_64",
                "deep_clean_256",
                "id_w_switch",
                "id_w_disabled",
                "id_to_no_switch",
                "id_to_no_disabled",
                "remove_on_delete_action",
                "delete_with_w_relation",
                "delete_self_in_on_remove",
                "delete_nested_in_on_remove",
                "add_deleted_in_on_remove",
                "delete_tree_w_query",
                "fini_cleanup_order",
                "fini_cleanup_order_root_id_w_trait",
                "fini_cleanup_order_entity_after_singleton",
                "fini_cleanup_order_entity_after_component",
                "on_delete_parent_w_in_use_id_w_remove",
                "on_delete_parent_w_in_use_id_w_delete",
                "create_after_delete_with",
                "delete_with_inherited_tag",
                "delete_with_inherited_tag_w_query",
                "delete_with_inherited_tag_w_observer",
                "delete_symmetric_relation",
                "delete_observed_symmetric_relation",
                "nested_delete_with",
                "deferred_delete_with_after_create_named",
                "deferred_delete_with_childof_after_create_named",
                "match_marked_for_deletion",
                "delete_w_low_rel_mixed_cleanup",
                "delete_w_low_rel_mixed_cleanup_interleaved_ids",
                "fini_query_w_singleton_in_scope_no_module",
                "fini_query_w_singleton_in_module",
                "fini_observer_w_relationship_in_scope"
            ]
        }, {
            "id": "Set",
            "testcases": [
                "set_empty",
                "set_nonempty",
                "set_non_empty_override",
                "set_again",
                "set_2",
                "add_set",
                "set_add",
                "set_add_other",
                "set_remove",
                "set_remove_other",
                "set_remove_twice",
                "set_and_new",
                "set_null",
                "get_mut_new",
                "get_mut_existing",
                "get_mut_tag_new",
                "get_mut_tag_existing",
                "get_mut_tag_new_w_comp",
                "get_mut_tag_existing_w_comp",
                "get_mut_tag_new_w_pair",
                "get_mut_tag_existing_w_pair",
                "modified_w_on_set",
                "modified_no_component",
                "get_mut_w_add_in_on_add",
                "get_mut_w_remove_in_on_add",
                "get_mut_w_realloc_in_on_add",
                "emplace",
                "emplace_2",
                "emplace_existing",
                "emplace_w_move",
                "emplace_w_observer_w_add"
            ]
        }, {
            "id": "ReadWrite",
            "testcases": [
                "read",
                "nested_read",
                "write",
                "nested_write",
                "add_while_read",
                "add_while_write",
                "read_from_stage",
                "write_from_stage"
            ]
        }, {
            "id": "Lookup",
            "setup": true,
            "testcases": [
                "lookup",
                "lookup_component",
                "lookup_not_found",
                "lookup_child",
                "lookup_w_null_name",
                "lookup_after_name_reset",
                "get_name",
                "get_name_no_name",
                "get_name_from_empty",
                "lookup_by_id",
                "lookup_recycled_by_id",
                "lookup_symbol_by_id",
                "lookup_name_w_digit",
                "lookup_symbol_w_digit",
                "lookup_path_w_digit",
                "set_name_of_existing",
                "change_name_of_existing",
                "lookup_alias",
                "lookup_scoped_alias",
                "define_duplicate_alias",
                "lookup_null",
                "lookup_symbol_null",
                "lookup_this",
                "lookup_wildcard",
                "lookup_any",
                "lookup_variable",
                "lookup_path_this",
                "lookup_path_wildcard",
                "lookup_path_this_from_scope",
                "lookup_path_wildcard_from_scope",
                "resolve_builtin_symbols",
                "lookup_from_scope_staged",
                "lookup_core",
                "lookup_core_from_stage",
                "lookup_custom_search_path",
                "lookup_custom_search_path_from_stage",
                "lookup_custom_search_path_n_elems",
                "set_same_name",
                "set_same_name_after_reparenting",
                "defer_set_name",
                "defer_set_same_name",
                "lookup_invalid_digit",
                "lookup_child_invalid_digit",
                "lookup_digit_from_wrong_scope",
                "lookup_core_entity_from_wrong_scope",
                "lookup_alias_w_number"
            ]
        }, {
            "id": "Singleton",
            "testcases": [
                "add_singleton",
                "remove_singleton",
                "set_get_singleton",
                "get_mut_singleton",
                "singleton_system"
            ]
        }, {
            "id": "Clone",
            "testcases": [
                "empty",
                "empty_w_value",
                "null",
                "null_w_value",
                "1_component",
                "2_component",
                "1_component_w_value",
                "2_component_w_value",
                "3_component",
                "3_component_w_value",
                "tag",
                "tag_w_value",
                "1_tag_1_component",
                "1_tag_1_component_w_value",
                "clone_w_name"
            ]
        }, {
            "id": "ComponentLifecycle",
            "setup": true,
            "testcases": [
                "ctor_on_add",
                "ctor_on_new",
                "dtor_on_remove",
                "dtor_on_delete",
                "copy_on_set",
                "copy_on_override",
                "copy_on_clone",
                "no_copy_on_move",
                "ctor_copy_on_snapshot",
                "copy_on_snapshot",
                "dtor_on_restore",
                "ctor_on_tag",
                "dtor_on_tag",
                "copy_on_tag",
                "move_on_tag",
                "merge_to_different_table",
                "merge_to_new_table",
                "delete_in_stage",
                "ctor_on_add_pair",
                "ctor_on_add_pair_tag",
                "ctor_on_move_pair",
                "move_on_realloc",
                "move_on_bulk_new",
                "on_add_on_bulk_new",
                "move_on_delete",
                "move_dtor_on_delete",
                "copy_on_override_pair",
                "copy_on_override_pair_tag",
                "copy_on_set_pair",
                "copy_on_set_pair_tag",
                "allow_lifecycle_overwrite_equal_callbacks",
                "set_lifecycle_after_trigger",
                "valid_entity_in_dtor_after_delete",
                "ctor_w_emplace",
                "ctor_w_emplace_defer",
                "ctor_w_emplace_defer_use_move_ctor",
                "on_add_w_emplace",
                "on_add_w_emplace_existing",
                "on_add_w_emplace_defer",
                "merge_async_stage_w_emplace",
                "merge_async_stage_w_emplace_to_deferred_world",
                "emplace_grow_w_existing_component",
                "dtor_on_fini",
                "valid_type_in_dtor_on_fini",
                "valid_other_type_of_entity_in_dtor_on_fini",
                "delete_in_dtor_other_type_on_fini",
                "delete_in_dtor_other_type_on_delete_parent",
                "delete_in_dtor_other_type_on_delete",
                "delete_self_in_dtor_on_delete",
                "on_set_after_set",
                "on_add_after_new",
                "on_add_after_add",
                "on_add_after_set",
                "on_remove_after_remove",
                "on_remove_after_clear",
                "on_remove_after_delete",
                "free_component_new_id_while_fini",
                "dtor_component_new_id_while_fini",
                "free_component_new_pair_id_while_fini",
                "dtor_component_new_pair_id_while_fini",
                "free_component_new_obj_pair_id_while_fini",
                "dtor_component_new_obj_pair_id_while_fini",
                "ctor_move_dtor_after_resize",
                "ctx_free",
                "binding_ctx_free",
                "ctx_free_after_delete_component",
                "binding_ctx_free_after_delete_component",
                "on_add_ctx",
                "on_remove_ctx",
                "on_set_ctx",
                "on_add_w_existing_component",
                "on_remove_w_existing_component",
                "component_init_set_hooks",
                "on_add_after_ctor_w_add",
                "on_add_after_ctor_w_add_to",
                "with_before_hooks",
                "with_component_on_add",
                "move_ctor_on_move",
                "ptr_to_self",
                "ctor_move_dtor_from_move_ctor",
                "on_add_hook_check_offset",
                "on_remove_hook_check_offset",
                "on_set_hook_check_offset",
                "on_set_hook_on_override",
                "on_set_hook_on_auto_override",
                "batched_set_new_component_w_lifecycle",
                "batched_get_mut_new_component_w_lifecycle"
            ]
        }, {
            "id": "Sorting",
            "testcases": [
                "sort_by_component",
                "sort_by_component_2_tables",
                "sort_by_component_3_tables",
                "sort_by_entity",
                "sort_after_add",
                "sort_after_remove",
                "sort_after_delete",
                "sort_after_set",
                "sort_after_system",
                "sort_after_query",
                "sort_by_component_same_value_1",
                "sort_by_component_same_value_2",
                "sort_by_component_move_pivot",
                "sort_1000_entities",
                "sort_1000_entities_w_duplicates",
                "sort_1000_entities_again",
                "sort_1000_entities_2_types",
                "sort_1500_entities_3_types",
                "sort_2000_entities_4_types",
                "sort_2_entities_2_types",
                "sort_3_entities_3_types",
                "sort_3_entities_3_types_2",
                "sort_4_entities_4_types",
                "sort_1000_entities_2_types_again",
                "sort_1000_entities_add_type_after_sort",
                "sort_shared_component",
                "sort_shared_component_childof",
                "sort_w_tags_only",
                "sort_childof_marked",
                "sort_isa_marked",
                "sort_relation_marked",
                "dont_resort_after_set_unsorted_component",
                "dont_resort_after_set_unsorted_component_w_tag",
                "dont_resort_after_set_unsorted_component_w_tag_w_out_term",
                "sort_component_not_queried_for",
                "sort_by_wildcard"
            ]
        }, {
            "id": "SortingEntireTable",
            "testcases": [
                "sort_by_component",
                "sort_by_component_2_tables",
                "sort_by_component_3_tables",
                "sort_by_entity",
                "sort_after_add",
                "sort_after_remove",
                "sort_after_delete",
                "sort_after_set",
                "sort_after_system",
                "sort_after_query",
                "sort_by_component_same_value_1",
                "sort_by_component_same_value_2",
                "sort_by_component_move_pivot",
                "sort_1000_entities",
                "sort_1000_entities_w_duplicates",
                "sort_1000_entities_again",
                "sort_1000_entities_2_types",
                "sort_1500_entities_3_types",
                "sort_2000_entities_4_types",
                "sort_2_entities_2_types",
                "sort_3_entities_3_types",
                "sort_3_entities_3_types_2",
                "sort_4_entities_4_types",
                "sort_1000_entities_2_types_again",
                "sort_1000_entities_add_type_after_sort",
                "sort_shared_component",
                "sort_w_tags_only",
                "sort_childof_marked",
                "sort_isa_marked",
                "sort_relation_marked",
                "dont_resort_after_set_unsorted_component",
                "dont_resort_after_set_unsorted_component_w_tag",
                "dont_resort_after_set_unsorted_component_w_tag_w_out_term"
            ]
        }, {
            "id": "Filter",
            "testcases": [
                "filter_1_term",
                "filter_1_term_component",
                "filter_2_terms",
                "filter_3_terms",
                "filter_3_terms_w_or",
                "filter_4_terms_w_or_at_1",
                "filter_1_term_wildcard",
                "filter_1_term_any",
                "filter_1_term_same_subj_obj",
                "filter_1_term_acyclic_same_subj_obj",
                "filter_1_term_acyclic_reflexive_same_subj_obj",
                "filter_1_term_same_subj_obj_var",
                "filter_1_term_acyclic_same_subj_obj_var",
                "filter_1_term_acyclic_reflexive_same_subj_obj_var",
                "filter_1_term_non_acyclic_superset",
                "filter_1_term_dont_inherit_default_set",
                "filter_1_term_dont_inherit_pair_default_set",
                "filter_1_term_cascade_implicit_isa",
                "filter_1_term_cascade_isa",
                "filter_1_term_cascade_childof",
                "filter_1_term_cascade_down",
                "filter_1_term_optional_only",
                "filter_1_term_transitive_pair",
                "filter_1_term_transitive_pair_explicit_self_tgt",
                "filter_1_variable_as_pred_only",
                "filter_1_variable_as_pred_w_subj",
                "filter_1_variable_as_pred_w_pair",
                "filter_1_variable_as_subj",
                "filter_1_variable_as_obj",
                "filter_2_terms_or_w_dontinherit",
                "filter_2_terms_or_w_both_dontinherit",
                "filter_w_pair_id",
                "filter_w_pred_obj",
                "filter_w_pair_id_and_subj",
                "filter_1_w_pred_name",
                "filter_1_w_final_pred_name",
                "filter_1_w_subj_name",
                "filter_1_w_obj_name",
                "filter_w_this_implicit_variable",
                "filter_w_this_explicit_entity",
                "filter_w_first_this_implicit_variable",
                "filter_w_first_this_explicit_entity",
                "filter_w_second_this_implicit_variable",
                "filter_w_second_this_explicit_entity",
                "filter_w_this_variable_name",
                "filter_w_src_var",
                "filter_w_first_var",
                "filter_w_second_var",
                "filter_w_0_source",
                "filter_w_0_target",
                "filter_2_terms_w_or",
                "filter_2_terms_w_or_mixed_src_flags",
                "filter_2_terms_w_or_mixed_src_id",
                "filter_2_terms_w_or_mixed_src_name",
                "filter_2_terms_w_or_same_src_w_id_and_name",
                "filter_move",
                "filter_copy",
                "filter_w_resources_copy",
                "filter_w_and_flag",
                "filter_w_or_flag",
                "filter_w_not_flag",
                "filter_filter",
                "filter_double_init",
                "filter_double_init_w_expr",
                "filter_double_init_w_expr_optional",
                "filter_w_tag_term_is_no_data",
                "filter_w_inout_none_term_is_no_data",
                "filter_w_tag_and_inout_none_term_is_no_data",
                "filter_w_not_term_is_no_data",
                "filter_w_no_transitive_pair",
                "filter_w_transitive_pair_any_src",
                "filter_w_transitive_pair",
                "filter_w_transitive_tag_no_pair",
                "filter_w_transitive_tag_self_tgt",
                "filter_w_transitive_tag_any_tgt",
                "filter_w_pair_same_vars",
                "filter_w_pair_not_same_vars",
                "filter_w_pair_no_vars_not_same_vars",
                "filter_w_pair_wildcard_not_same_vars",
                "filter_w_pair_any_not_same_vars",
                "filter_w_no_pair_not_same_vars",
                "filter_not_childof_any",
                "filter_w_inherited_id",
                "filter_w_inherited_pair",
                "filter_w_non_inherited_id",
                "filter_w_non_inherited_pair",
                "filter_w_first_rel",
                "filter_w_first_rel_self",
                "filter_w_first_rel_down",
                "filter_w_first_rel_self_down",
                "filter_w_first_rel_reflexive",
                "filter_w_first_rel_reflexive_self",
                "filter_w_first_rel_reflexive_down",
                "filter_w_first_rel_reflexive_self_down",
                "filter_w_first_rel_non_traversable",
                "filter_w_first_wildcard_inout_none",
                "filter_w_first_var_inout_none",
                "filter_w_pair_wildcard_inout_none",
                "filter_w_pair_var_inout_none",
                "filter_w_unresolved_by_name",
                "filter_w_unresolved_by_name_eq",
                "filter_childof_this",
                "filter_childof_this_entity",
                "filter_childof_this_by_id",
                "term_w_id",
                "term_w_pair_id",
                "term_w_pred_obj",
                "term_w_pair_finalize_twice",
                "term_w_role",
                "term_w_pred_role",
                "term_w_self",
                "term_w_superset",
                "term_w_subset",
                "term_w_self_superset",
                "term_w_superset_custom_relation",
                "term_w_self_superset_custom_relation",
                "term_iter_component",
                "term_iter_w_pred",
                "term_iter_tag",
                "term_iter_pair",
                "term_iter_pair_w_rel_wildcard",
                "term_iter_pair_w_obj_wildcard",
                "term_iter_pair_w_rel_wildcard_n_matches",
                "term_iter_pair_w_rel_wildcard_n_matches_w_data",
                "term_iter_pair_w_obj_wildcard_n_matches",
                "term_iter_pair_w_obj_wildcard_n_matches_w_data",
                "term_iter_w_superset",
                "term_iter_w_superset_base_w_2_components",
                "term_iter_w_superset_childof",
                "term_iter_w_superset_self",
                "term_iter_w_superset_self_childof",
                "term_iter_w_superset_tag",
                "term_iter_w_superset_pair",
                "term_iter_w_superset_pair_obj_wildcard",
                "term_iter_in_stage",
                "term_iter_w_readonly_term",
                "term_iter_type_set",
                "term_iter_any_match_wildcard",
                "term_iter_any_match_tag_and_wildcard",
                "term_iter_any_obj",
                "children_iter",
                "filter_iter_1_tag",
                "filter_iter_2_tags",
                "filter_iter_2_tags_1_not",
                "filter_iter_3_tags_2_or",
                "filter_iter_only_optional",
                "filter_iter_only_2_or",
                "filter_iter_only_3_or",
                "filter_iter_2_or",
                "filter_iter_3_or",
                "filter_iter_2_or_other_type",
                "filter_iter_2_or_same_type",
                "filter_iter_1_component",
                "filter_iter_2_components",
                "filter_iter_pair_id",
                "filter_iter_2_pair_ids",
                "filter_iter_childof_pair_0_parent",
                "filter_iter_pair_pred_obj",
                "filter_iter_pair_2_pred_obj",
                "filter_iter_null",
                "filter_iter_1_not_tag",
                "filter_iter_2_tags_1_optional",
                "filter_iter_2_components_1_optional",
                "filter_iter_in_stage",
                "filter_iter_10_tags",
                "filter_iter_20_tags",
                "filter_iter_10_components",
                "filter_iter_20_components",
                "filter_iter_superset",
                "filter_iter_superset_childof",
                "filter_iter_type_set",
                "filter_iter_w_readonly_term",
                "filter_iter_w_from_nothing_term",
                "filter_iter_pair_w_rel_wildcard_n_matches",
                "filter_iter_pair_w_obj_wildcard_n_matches",
                "filter_iter_pair_w_2_wildcards_1_match",
                "filter_iter_pair_w_2_wildcards_2x1_matches",
                "filter_iter_pair_w_2_wildcards_2x2_matches",
                "filter_iter_pair_w_3_wildcards_2x2x2_matches",
                "filter_iter_pair_w_wildcard_and_nothing",
                "filter_iter_any",
                "filter_iter_any_match_wildcard",
                "filter_iter_any_match_tag_and_wildcard",
                "filter_iter_wildcard_in_2nd_term",
                "filter_iter_wildcard_in_2nd_term_self",
                "filter_iter_2nd_term_self_create_id_after_filter",
                "filter_iter_any_obj",
                "filter_iter_not_any",
                "filter_iter_not_any_obj",
                "filter_iter_cascade_isa",
                "filter_iter_cascade_childof",
                "filter_iter_superset_2_rel_instances",
                "filter_iter_superset_2_rel_instances_match_2nd",
                "filter_iter_superset_2_levels",
                "filter_iter_superset_only_w_owned",
                "filter_iter_superset_after_add",
                "filter_iter_superset_after_remove",
                "filter_iter_superset_after_clear",
                "filter_iter_superset_after_delete",
                "filter_iter_2_terms_superset_2_rel_instances",
                "filter_iter_2_terms_superset_2_rel_instances_match_2nd",
                "filter_iter_superset_parent_w_isa",
                "filter_iter_superset_isa_after_remove_parent",
                "filter_iter_superset_isa_create_table_after_iter",
                "filter_iter_superset_2_relations",
                "filter_iter_superset_2_relations_instanced",
                "filter_iter_superset_2_relations_w_component",
                "filter_iter_superset_2_relations_instanced_w_component",
                "filter_iter_not_up_disabled",
                "filter_iter_pair_wildcard_component",
                "filter_w_10_terms",
                "filter_w_10_terms_move",
                "filter_w_10_terms_copy",
                "match_disabled",
                "match_prefab",
                "chain_term_iter",
                "chain_filter_iter",
                "chain_query_iter",
                "chain_rule_iter",
                "chain_iter_2_levels",
                "filter_from_expr_2_terms_err",
                "chain_term_iter_w_term_iter",
                "chain_filter_iter_w_term_iter",
                "chain_w_term_iter_component",
                "chain_iter_w_or",
                "filter_w_recycled_first",
                "filter_w_recycled_second",
                "filter_w_recycled_first_and_id",
                "filter_w_recycled_second_and_id",
                "filter_w_recycled_first_by_name_and_id",
                "filter_w_recycled_second_by_name_and_id",
                "filter_w_recycled_first_by_expr",
                "filter_w_recycled_second_by_expr",
                "filter_w_recycled_first_only_by_expr",
                "term_iter_w_filter_term",
                "filter_iter_w_filter_term",
                "filter_iter_w_2_terms_1_filter",
                "filter_iter_w_3_terms_2_filter",
                "filter_iter_2_terms_filter_all",
                "filter_iter_2_terms_filter_all_w_out",
                "filter_iter_switch_term_filter",
                "filter_iter_2_terms_switch_term_filter",
                "filter_iter_switch_superset",
                "filter_instanced_w_singleton",
                "filter_instanced_w_base",
                "filter_no_instancing_w_singleton",
                "filter_no_instancing_w_base",
                "filter_no_this_tag",
                "filter_no_this_component",
                "filter_no_this_tag_2_ents",
                "filter_no_this_component_2_ents",
                "filter_no_this_tag_2_ents_1_not",
                "filter_no_this_component_2_ents_1_not",
                "filter_no_this_component_1_not",
                "filter_iter_entities_optional_flag",
                "filter_iter_frame_offset",
                "filter_1_term_no_alloc",
                "filter_cache_size_terms_no_alloc",
                "filter_lt_cache_size_terms_no_alloc",
                "move_self",
                "match_empty_tables",
                "match_empty_tables_w_no_empty_tables",
                "match_switch_w_switch",
                "match_switch_w_case",
                "match_switch_w_case_2_terms",
                "match_case_no_case",
                "and_term",
                "or_term",
                "iter_while_creating_components",
                "iter_w_this_var_as_entity",
                "iter_w_this_var_as_table",
                "iter_w_this_var_as_table_range",
                "filter_wo_this_var",
                "set_this_to_table_1_term",
                "set_this_to_table_2_terms",
                "set_this_to_table_1_wildcard",
                "set_this_to_table_no_match_no_data",
                "set_this_to_table_no_match",
                "set_this_to_table_2_terms_no_match",
                "set_this_to_empty_table",
                "set_this_to_empty_table_w_component",
                "set_this_to_implicit_isa_superset_match",
                "set_this_to_self_isa_superset_match",
                "set_this_to_isa_superset_match",
                "set_this_to_childof_superset_match",
                "set_this_to_superset_w_self_filter_no_match",
                "set_this_to_isa_cascade",
                "set_this_to_childof_cascade",
                "set_this_w_wildcard_2_matches",
                "set_this_to_entity_superset_self_has_component",
                "set_this_to_1_entity_in_table",
                "oneof",
                "oneof_expr",
                "oneof_w_mismatching_obj",
                "oneof_w_mismatching_obj_expr",
                "oneof_wildcard",
                "oneof_any",
                "flag_match_only_this",
                "flag_match_only_this_w_ref",
                "filter_w_alloc",
                "filter_w_short_notation"
            ]
        }, {
            "id": "FilterStr",
            "testcases": [
                "one_term",
                "one_term_w_inout",
                "two_terms",
                "two_terms_w_inout",
                "three_terms_w_or",
                "three_terms_w_or_inout",
                "four_terms_three_w_or_inout",
                "one_term_w_pair",
                "one_term_w_pair_entity_src",
                "one_term_w_self",
                "one_term_w_up",
                "one_term_w_0",
                "one_term_w_singleton",
                "one_term_w_final_pair",
                "one_term_w_final_dont_inherit_pair",
                "one_term_w_src_var",
                "one_term_w_first_var",
                "one_term_w_second_var",
                "one_term_w_first_var_entity_src",
                "one_term_w_pair_w_0_entity",
                "not_term",
                "wildcard_term",
                "scopes",
                "pred_eq",
                "pred_neq",
                "pred_eq_name",
                "pred_neq_name",
                "pred_eq_m",
                "pred_neq_m"
            ]
        }, {
            "id": "Query",
            "testcases": [
                "simple_query_existing_table",
                "simple_query_2_existing_tables",
                "simple_query_new_table",
                "simple_query_2_new_tables",
                "simple_query_existing_and_new_table",
                "wildcard_query_existing_table",
                "wildcard_query_new_table",
                "wildcard_query_existing_table_2_results_p_table",
                "wildcard_query_new_table_2_results_p_table",
                "wildcard_query_2nd_term",
                "wildcard_query_2nd_term_self",
                "simple_query_existing_empty_table",
                "simple_query_existing_empty_type",
                "simple_query_new_empty_table",
                "component_query_existing_table",
                "component_query_new_table",
                "component_query_existing_empty_table",
                "2_component_query_existing_empty_table",
                "2_component_query_existing_empty_type",
                "only_optional",
                "only_optional_new_empty_table",
                "only_optional_new_empty_non_empty_table",
                "only_optional_new_unset_tables",
                "singleton_w_optional_new_empty_table",
                "singleton_w_optional_new_empty_non_empty_table",
                "singleton_w_optional_new_unset_tables",
                "query_only_from_entity",
                "query_only_from_entity_no_match",
                "query_only_from_entity_no_match_iter_alloc",
                "query_only_from_singleton",
                "query_only_from_entity_match_after",
                "query_only_from_singleton_match_after",
                "query_only_from_singleton_component_match_after",
                "query_only_from_nothing",
                "query_only_from_entity_optional",
                "query_only_from_entity_no_match_optional",
                "query_only_from_entity_or",
                "query_only_from_entity_no_match_or",
                "query_only_from_entity_or_change",
                "query_from_entity_or_change",
                "query_from_entity_w_superset",
                "query_w_singleton_tag_non_instanced",
                "query_w_singleton_tag_instanced",
                "query_w_singleton_component_non_instanced",
                "query_w_singleton_component_instanced",
                "query_w_from_entity",
                "query_w_from_singleton",
                "query_w_from_entity_match_after",
                "query_w_from_singleton_match_after",
                "query_w_from_nothing",
                "query_w_existing_switch_and_case",
                "query_w_new_switch_and_case",
                "query_for_case_existing",
                "query_for_case_new",
                "query_for_switch_filter_term",
                "query_switch_from_nothing",
                "query_case_from_nothing",
                "query_case_inherited",
                "query_case_w_generation",
                "query_case_w_not_alive",
                "query_disabled_from_nothing",
                "query_only_2_or",
                "query_only_3_or",
                "query_2_or",
                "query_3_or",
                "query_and_type",
                "query_or_type",
                "query_and_type_match_after",
                "query_or_type_match_after",
                "query_changed_after_new",
                "query_changed_after_delete",
                "query_changed_after_add",
                "query_changed_after_remove",
                "query_changed_after_set",
                "query_change_after_modified",
                "query_change_after_out_system",
                "query_change_after_in_system",
                "query_change_after_modified_out_term",
                "query_change_check_iter",
                "query_change_check_iter_after_skip_read",
                "query_change_check_iter_after_skip_write",
                "query_change_parent_term",
                "query_change_prefab_term",
                "query_change_parent_term_w_tag",
                "query_change_prefab_term_w_tag",
                "query_change_skip_non_instanced",
                "query_changed_w_or",
                "query_changed_or",
                "query_changed_w_singleton",
                "query_changed_w_only_singleton",
                "query_changed_w_only_singleton_after_set",
                "query_changed_w_only_singleton_after_out_term",
                "query_changed_w_only_singleton_after_singleton_out_term",
                "query_changed_w_only_parent",
                "query_changed_w_only_parent_after_set",
                "query_changed_w_only_parent_after_out_term",
                "query_changed_w_only_parent_after_parent_out_term",
                "query_changed_tag",
                "query_changed_no_source",
                "query_changed_no_source_component",
                "query_changed_w_not_out",
                "subquery_match_existing",
                "subquery_match_new",
                "subquery_inactive",
                "subquery_unmatch",
                "subquery_rematch",
                "subquery_rematch_w_parent_optional",
                "subquery_rematch_w_sub_optional",
                "query_single_pairs",
                "query_single_instanceof",
                "query_single_childof",
                "query_optional_owned",
                "query_optional_shared",
                "query_optional_shared_nested",
                "query_optional_any",
                "query_rematch_optional_after_add",
                "get_owned_tag",
                "get_shared_tag",
                "explicit_delete",
                "get_column_size",
                "orphaned_query",
                "nested_orphaned_query",
                "invalid_access_orphaned_query",
                "stresstest_query_free",
                "only_from_entity",
                "only_not_from_entity",
                "only_from_singleton",
                "only_not_from_singleton",
                "get_filter",
                "group_by",
                "group_by_w_ctx",
                "group_by_w_sort_reverse_group_creation",
                "group_by_iter_one",
                "group_by_iter_one_all_groups",
                "group_by_iter_one_empty",
                "group_by_iter_one_empty_query",
                "group_by_iter_one_empty_table",
                "group_by_w_deleted_group_id",
                "group_by_callbacks",
                "group_by_default_action",
                "group_table_count",
                "iter_valid",
                "query_optional_tag",
                "query_optional_shared_tag",
                "query_iter_10_tags",
                "query_iter_20_tags",
                "query_iter_10_components",
                "query_iter_20_components",
                "iter_type_set",
                "filter_term",
                "2_terms_1_filter",
                "3_terms_2_filter",
                "no_instancing_w_singleton",
                "no_instancing_w_shared",
                "query_iter_frame_offset",
                "add_singleton_after_query",
                "query_w_component_from_parent_from_non_this",
                "create_query_while_pending",
                "empty_query",
                "parent_cascade",
                "existing_custom_rel_cascade",
                "new_custom_rel_cascade",
                "cascade_w_2_depths",
                "cascade_w_3_depths",
                "cascade_w_2_depths_desc",
                "cascade_w_3_depths_desc",
                "not_pair_relation_wildcard",
                "not_pair_object_wildcard",
                "two_pair_wildcards_one_not",
                "two_pair_wildcards_one_not_any",
                "implicit_existing_isa_superset",
                "implicit_new_isa_superset",
                "isa_superset",
                "isa_superset_2_lvls",
                "isa_superset_3_lvls",
                "isa_superset_2_lvls_owned",
                "isa_superset_3_lvls_owned",
                "isa_superset_owned_empty_table_after_match",
                "isa_self_superset",
                "childof_superset",
                "superset_2_targets",
                "superset_2_relations",
                "superset_2_relations_instanced",
                "superset_2_relations_w_component",
                "superset_2_relations_instanced_w_component",
                "parent",
                "existing_isa_cascade",
                "new_isa_cascade",
                "childof_cascade",
                "isa_rematch",
                "childof_rematch",
                "isa_unmatch",
                "childof_unmatch",
                "isa_rematch_2_lvls",
                "childof_rematch_2_lvls",
                "cascade_rematch_2_lvls",
                "cascade_rematch_2_lvls_2_relations",
                "cascade_topological",
                "cascade_desc_rematch_2_lvls",
                "cascade_desc_rematch_2_lvls_2_relations",
                "cascade_desc_topological",
                "childof_rematch_from_isa",
                "rematch_optional_ref",
                "rematch_optional_ref_w_2_refs",
                "rematch_optional_ref_tag_w_ref_component",
                "match_query_expr_from_scope",
                "query_long_or_w_ref",
                "0_query",
                "query_w_pair_id_and_subj",
                "table_count",
                "empty_table_count",
                "entity_count",
                "rematch_after_delete_inherited_tag",
                "rematch_after_delete_rel_of_inherited_pair",
                "rematch_after_delete_obj_of_inherited_pair",
                "rematch_empty_table_w_superset",
                "query_w_short_notation",
                "query_w_invalid_filter_flag",
                "query_next_table",
                "query_next_table_w_changed",
                "query_next_table_w_populate",
                "query_next_table_w_skip",
                "query_next_table_w_populate_first_changed",
                "query_next_table_w_populate_last_changed",
                "query_next_table_w_populate_skip_first",
                "query_next_table_w_populate_skip_last",
                "create_query_existing_query_entity",
                "query_for_recycled_pair",
                "query_w_singleton_w_rule_iter",
                "query_w_singleton_nested_iter",
                "query_w_singleton_interleaved_iter",
                "recycled_component_id",
                "set_get_context",
                "set_get_binding_context",
                "set_get_context_w_free",
                "set_get_binding_context_w_free",
                "set_this",
                "set_this_no_match",
                "set_this_is_true",
                "set_this_w_wildcard",
                "singleton_w_inout_none",
                "singleton_w_inout_none_or",
                "component_w_inout_none_or"
            ]
        }, {
            "id": "Iter",
            "testcases": [
                "page_iter_0_0",
                "page_iter_1_0",
                "page_iter_0_1",
                "page_iter_n_0",
                "page_iter_0_n",
                "page_iter_m_n",
                "page_iter_skip_1_table",
                "page_iter_skip_2_tables",
                "worker_iter_1",
                "worker_iter_2",
                "worker_iter_3",
                "worker_iter_4",
                "paged_iter_w_shared_comp",
                "worker_iter_w_shared_comp",
                "paged_iter_w_task_query",
                "worker_iter_w_task_query",
                "worker_iter_w_singleton",
                "worker_iter_w_singleton_component",
                "worker_iter_w_singleton_instanced",
                "worker_iter_w_singleton_component_instanced",
                "paged_iter_w_singleton",
                "paged_iter_w_singleton_component",
                "paged_iter_w_singleton_instanced",
                "paged_iter_w_singleton_component_instanced",
                "count",
                "iter_restore_stack_iter",
                "interleaved_iter",
                "get_first",
                "page_iter_w_only_tag",
                "worker_iter_w_only_tag",
                "page_iter_w_inout_none",
                "worker_iter_w_inout_none",
                "page_iter_w_ctx",
                "page_iter_w_binding_ctx",
                "worker_iter_w_ctx",
                "worker_iter_w_binding_ctx",
                "column_index_owned",
                "column_index_shared",
                "column_index_not",
                "page_iter_w_fini",
                "worker_iter_w_fini",
                "rule_page_iter_w_fini",
                "rule_worker_iter_w_fini",
                "to_str_before_next",
                "to_str"
            ]
        }, {
            "id": "Pairs",
            "testcases": [
                "type_w_one_pair",
                "type_w_two_pairs",
                "add_pair",
                "remove_pair",
                "add_tag_pair_for_tag",
                "add_tag_pair_for_component",
                "query_2_pairs",
                "query_2_pairs_2_instances_per_type",
                "query_pair_or_component",
                "query_pair_or_pair",
                "query_not_pair",
                "override_pair",
                "override_tag_pair",
                "pair_w_component_query",
                "on_add_pair",
                "on_add_pair_tag",
                "on_remove_pair",
                "on_remove_pair_tag",
                "on_remove_pair_on_delete",
                "on_remove_pair_tag_on_delete",
                "get_typeid_w_recycled_rel",
                "get_typeid_w_recycled_obj",
                "id_str_w_recycled_rel",
                "id_str_w_recycled_obj",
                "set_object_w_zero_sized_rel_comp",
                "dsl_pair",
                "dsl_pair_w_pred_wildcard",
                "dsl_pair_w_obj_wildcard",
                "dsl_pair_w_both_wildcard",
                "dsl_pair_w_explicit_subj_this",
                "dsl_pair_w_explicit_subj",
                "api_pair",
                "api_pair_w_pred_wildcard",
                "api_pair_w_obj_wildcard",
                "api_pair_w_both_wildcard",
                "api_pair_w_explicit_subj_this",
                "api_pair_w_explicit_subj",
                "typeid_from_tag",
                "typeid_from_component",
                "typeid_from_pair",
                "typeid_from_pair_w_rel_type",
                "typeid_from_pair_w_obj_type",
                "typeid_from_pair_w_rel_obj_type",
                "typeid_from_pair_w_rel_0_obj_type",
                "typeid_from_pair_w_rel_obj_0_type",
                "typeid_from_pair_w_rel_0_obj_0_type",
                "typeid_from_pair_with_0_obj",
                "typeid_from_pair_w_override",
                "typeid_from_pair_w_toggle",
                "tag_pair_w_rel_comp",
                "tag_pair_w_obj_comp",
                "tag_pair_w_rel_obj_comp",
                "get_tag_pair_w_rel_comp",
                "get_tag_pair_w_obj_comp",
                "get_tag_pair_w_rel_obj_comp",
                "tag_pair_w_childof_w_comp",
                "tag_pair_w_isa_w_comp",
                "get_1_target",
                "get_1_target_not_found",
                "get_n_targets",
                "get_target_from_base",
                "get_target_from_2nd_base",
                "get_target_from_base_w_pair_on_instance",
                "get_childof_target_from_base",
                "get_dontinherit_target_from_base",
                "get_target_for_id_from_self",
                "get_target_for_id_from_base",
                "get_target_for_id_from_nested_base",
                "get_target_for_id_not_found",
                "get_target_for_wildcard_from_self",
                "get_target_for_wildcard_from_base",
                "get_target_for_wildcard_from_nested_base",
                "get_target_for_id_from_empty",
                "get_target_for_id_from_empty_no_rel",
                "get_target_for_id_not_empty_not_found",
                "get_target_for_id_from_stage",
                "get_target_for_id_no_id",
                "get_parent",
                "get_parent_from_root",
                "ignore_childof_from_base",
                "add_exclusive_relation_twice",
                "add_same_exclusive_relation_twice",
                "set_exclusive_relation_twice",
                "add_exclusive_non_empty_table",
                "add_exclusive_non_empty_table_w_pairs",
                "add_pair_to_entity_w_exclusive_pair",
                "add_pair_to_entity_w_scope",
                "add_existing_exclusive_pair_after_pair",
                "add_remove_exclusive_property",
                "add_symmetric_relation",
                "remove_symmetric_relation",
                "delete_entity_w_symmetric_relation",
                "add_symmetric_exclusive_relation",
                "add_symmetric_recycled_relation",
                "with",
                "2_with",
                "nested_with",
                "with_relation",
                "2_with_relation",
                "with_for_existing",
                "nested_with_relation",
                "65k_relations",
                "add_not_alive_relation",
                "remove_wildcard",
                "remove_relation_wildcard",
                "remove_wildcard_all",
                "inherit_exclusive",
                "dont_inherit",
                "has_wildcard_w_pair",
                "has_pair_wildcard_w_tag",
                "oneof_self",
                "oneof_other",
                "oneof_self_constraint_violated",
                "oneof_other_constraint_violated",
                "oneof_other_rel_parent_constraint_violated",
                "set_w_recycled_rel",
                "set_w_recycled_tgt"
            ]
        }, {
           "id": "Trigger",
           "testcases": [
               "on_add_trigger_before_table",
               "on_add_trigger_after_table",
               "on_remove_trigger_before_table",
               "on_remove_trigger_after_table",
               "on_add_tag",
               "on_add_component",
               "on_add_wildcard",
               "on_add_pair",
               "on_add_pair_obj_wildcard",
               "on_add_pair_pred_wildcard",
               "on_add_pair_wildcard",
               "on_add_any",
               "on_remove_tag",
               "on_remove_component",
               "on_remove_wildcard",
               "on_remove_pair",
               "on_remove_pair_obj_wildcard",
               "on_remove_pair_pred_wildcard",
               "on_remove_pair_wildcard",
               "wildcard_pair_w_pred_component",
               "wildcard_pair_w_obj_component",
               "on_add_remove",
               "on_set_component",
               "on_set_wildcard",
               "on_set_pair",
               "on_set_pair_w_obj_wildcard",
               "on_set_pair_pred_wildcard",
               "on_set_pair_wildcard",
               "on_set_component_after_modified",
               "un_set_component",
               "un_set_wildcard",
               "un_set_pair",
               "un_set_pair_w_obj_wildcard",
               "un_set_pair_pred_wildcard",
               "un_set_pair_wildcard",
               "on_add_not_tag",
               "on_remove_not_tag",
               "on_add_superset",
               "on_add_superset_2_levels",
               "on_remove_superset",
               "on_add_superset_childof",
               "on_remove_superset_childof",
               "on_add_self_superset",
               "on_remove_self_superset",
               "add_twice",
               "remove_twice",
               "on_remove_w_clear",
               "on_remove_w_delete",
               "on_remove_w_world_fini",
               "on_add_w_clone",
               "add_in_trigger",
               "remove_in_trigger",
               "clear_in_trigger",
               "delete_in_trigger",
               "trigger_w_named_entity",
               "on_remove_tree",
               "set_get_context",
               "set_get_binding_context",
               "delete_trigger_w_delete_ctx",
               "trigger_w_index",
               "iter_type_set",
               "readonly_term",
               "trigger_on_prefab",
               "trigger_on_disabled",
               "trigger_on_prefab_tag",
               "trigger_on_disabled_tag",
               "trigger_cleanup_2_w_self_super_id",
               "on_add_yield_existing",
               "on_add_yield_existing_2_tables",
               "on_add_yield_existing_wildcard_pair",
               "on_set_yield_existing",
               "filter_term",
               "on_add_remove_after_exclusive_add",
               "on_add_base",
               "on_remove_base",
               "on_set_base",
               "on_unset_base",
               "on_add_base_superset_trigger",
               "on_add_base_superset_trigger_2_lvls",
               "on_add_base_2_entities",
               "on_add_base_2_entities_filter",
               "on_set_base_w_value_2_entities",
               "on_set_base_w_value_2_entities_instanced",
               "on_add_base_w_override",
               "on_set_base_w_override",
               "entity_source_1_trigger",
               "entity_source_2_triggers",
               "entity_source_base_set",
               "not_from_superset",
               "create_stresstest",
               "add_non_existing_entity",
               "on_add_self_trigger_with_add_isa",
               "on_set_self_trigger_with_add_isa",
               "notify_propagated_twice",
               "trigger_superset_wildcard",
               "remove_wildcard_1_id",
               "remove_wildcard_2_ids",
               "on_set_w_tag",
               "create_triggers_in_trigger",
               "on_add_superset_w_component",
               "on_set_superset_w_component",
               "on_add_base_superset_w_owned",
               "on_add_base_self_superset_w_owned",
               "on_set_self_from_child_of_prefab",
               "on_set_self_superset_from_child_of_prefab",
               "on_set_self_from_child_base_of_prefab",
               "on_set_self_superset_from_child_base_of_prefab",
               "on_set_self_auto_override",
               "on_set_self_superset_auto_override",
               "on_set_superset_auto_override",
               "not_only",
               "not_only_w_base",
               "not_only_w_base_no_match",
               "on_set_superset_after_filter_observer",
               "on_set_superset_after_filter_observer_w_on_add",
               "on_set_superset_after_filter_observer_w_on_add_isa_after_set",
               "on_set_superset_after_filter_observer_w_on_add_2",
               "propagate_w_union_pair"
           ]
        }, {
            "id": "Observer",
            "testcases": [
                "2_terms_w_on_add",
                "2_terms_w_on_remove",
                "2_terms_w_on_set_value",
                "2_terms_w_on_remove_value",
                "2_terms_w_on_add_2nd",
                "2_terms_w_on_remove_2nd",
                "2_pair_terms_w_on_add",
                "2_pair_terms_w_on_remove",
                "2_wildcard_pair_terms_w_on_add",
                "2_wildcard_pair_terms_w_on_add_2_matching",
                "2_wildcard_pair_terms_w_on_add_3_matching",                
                "2_wildcard_pair_terms_w_on_remove",
                "on_set_n_entities",
                "on_set_n_entities_2_comp",
                "wildcard_pair_w_pred_component",
                "wildcard_pair_w_obj_component",
                "2_terms_1_not_w_on_add",
                "2_terms_1_not_w_on_remove",
                "2_terms_w_on_set",
                "2_terms_w_un_set",
                "3_terms_2_or_on_add",
                "3_terms_2_or_on_remove",
                "2_terms_w_from_entity_on_add",
                "2_terms_on_remove_on_clear",
                "2_terms_on_remove_on_delete",
                "add_after_delete_observer",
                "remove_after_delete_observer",
                "delete_observer_w_ctx",
                "update_ctx",
                "filter_w_strings",
                "iter_type_set",
                "readonly_term",
                "trigger_on_prefab",
                "trigger_on_disabled",
                "unset_1_of_1",
                "unset_1_of_2",
                "unset_1_of_3",
                "unset_on_delete_1",
                "unset_on_delete_2",
                "unset_on_delete_3",
                "unset_on_fini_1",
                "unset_on_fini_2",
                "unset_on_fini_3",
                "overlapping_unset_systems",
                "unset_move_to_nonempty_table",
                "write_in_unset",
                "filter_term",
                "2_terms_1_filter",
                "3_terms_2_filter",
                "and_from",
                "or_from",
                "notify_propagated_twice",
                "on_add_yield_existing",
                "on_add_yield_existing_2_tables",
                "on_add_yield_existing_2_terms",
                "on_add_yield_existing_wildcard",
                "on_add_yield_existing_wildcard_multi",
                "on_add_yield_existing_wildcard_multi_w_wildcard_pivot",
                "observer_superset_wildcard",
                "observer_superset_wildcard_add_isa",
                "observer_superset_wildcard_add_isa_at_offset",
                "on_set_w_tag",
                "mixed_on_set_w_tag",
                "mixed_un_set_w_tag",
                "match_base_w_id_at_offset",
                "custom_run_action",
                "custom_run_action_w_iter_next",
                "custom_run_action_2_terms",
                "custom_run_action_w_iter_next_2_terms",
                "read_in_on_remove_after_add_other_w_not",
                "observer_w_short_notation",
                "observer_w_filter_term",
                "multi_observer_w_ctx_free",
                "propagate_after_on_delete_clear_action",
                "on_add_after_batch_w_exclusive_adds",
                "propagate_match_relationship_w_self_up",
                "propagate_match_relationship_w_up",
                "observer_w_2_fixed_src",
                "emit_for_recreated_id_after_remove_all",
                "emit_for_recreated_id_after_remove_all_wildcard",
                "emit_for_recreated_id_after_delete_with",
                "emit_for_recreated_id_after_delete_with_wildcard",
                "delete_observed_id",
                "delete_observed_rel",
                "delete_observed_tgt",
                "on_add_2_pairs_w_uni_observer",
                "on_add_2_pairs_w_multi_observer",
                "on_set_2_pairs_w_uni_observer",
                "on_set_2_pairs_w_multi_observer",
                "on_remove_target_from_base_at_offset",
                "on_remove_target_component_from_base_at_offset",
                "filter_observer_after_observer",
                "notify_after_defer_batched",
                "notify_after_defer_batched_2_entities_in_table",
                "notify_after_defer_batched_2_entities_in_table_w_tgt",
                "multi_observer_table_fill_w_singleton",
                "wildcard_propagate_w_other_table",
                "add_in_yield_existing",
                "add_in_yield_existing_multi",
                "emit_for_parent_w_prefab_child_and_instance",
                "cache_test_1",
                "cache_test_2",
                "cache_test_3",
                "cache_test_4",
                "cache_test_5",
                "cache_test_6",
                "cache_test_7",
                "cache_test_8",
                "cache_test_9",
                "cache_test_10",
                "cache_test_11",
                "cache_test_12",
                "cache_test_13",
                "cache_test_14",
                "cache_test_15",
                "cache_test_16"
            ]                
        }, {
            "id": "ObserverOnSet",
            "testcases": [
                "set_1_of_1",
                "set_1_of_2",
                "set_1_of_3",
                "set_1_of_2_1_from_base",
                "set_1_of_3_1_from_base",
                "add_base",
                "add_base_to_1_overridden",
                "add_base_to_2_overridden",
                "add_base_to_1_of_2_overridden",
                "on_set_after_remove_override",
                "no_set_after_remove_base",
                "un_set_after_remove",
                "un_set_after_remove_base",
                "add_to_current_in_on_set",
                "remove_from_current_in_on_set",
                "remove_set_component_in_on_set",
                "match_table_created_w_add_in_on_set",
                "set_optional",
                "set_from_nothing",
                "add_0_entity_in_on_set",
                "on_set_prefab"
            ]
        }, {
            "id": "TriggerOnAdd",
            "setup": true,
            "testcases": [
                "new_match_1_of_1",
                "new_match_1_of_2",
                "new_no_match_1",
                "new_w_count_match_1_of_1",
                "add_match_1_of_1",
                "add_match_1_of_2",
                "add_no_match_1",
                "set_match_1_of_1",
                "set_no_match_1",
                "clone_match_1_of_1",
                "clone_match_1_of_2",
                "add_again_1",
                "set_again_1",
                "add_again_2",
                "override_after_add_in_on_add",
                "set_after_add_in_on_add",
                "add_again_in_progress",
                "add_in_progress_before_system_def",
                "2_systems_w_table_creation",
                "2_systems_w_table_creation_in_progress",
                "sys_context",
                "get_sys_context_from_param",
                "remove_added_component_in_on_add_w_set",
                "on_add_in_on_add",
                "on_remove_in_on_add",
                "on_set_in_on_add",
                "on_add_in_on_update",
                "emplace",
                "add_after_delete_trigger",
                "add_after_delete_wildcard_id_trigger"
            ]
        }, {
            "id": "TriggerOnRemove",
            "testcases": [
                "remove",
                "remove_no_match",
                "delete",
                "delete_no_match",
                "remove_watched",
                "delete_watched",
                "on_remove_in_on_update",
                "valid_entity_after_delete",
                "remove_after_delete_trigger",
                "remove_after_delete_wildcard_id_trigger",
                "has_removed_tag_trigger_1_tag",
                "has_removed_tag_trigger_2_tags"
            ]
        }, {
            "id": "TriggerOnSet",
            "testcases": [
                "set",
                "set_new",
                "set_again",
                "clone",
                "clone_w_value",
                "set_and_add_system",
                "on_set_after_override",
                "on_set_after_override_w_new",
                "on_set_after_override_w_new_w_count",
                "on_set_after_override_1_of_2_overridden",
                "on_set_after_snapshot_restore",
                "on_set_after_remove_override",
                "emplace",
                "un_set_tag_w_remove",
                "un_set_tag_w_clear",
                "un_set_tag_w_delete"
            ]
        }, {
            "id": "Monitor",
            "testcases": [
                "1_comp",
                "2_comps",
                "1_comp_1_not",
                "1_parent",
                "1_comp_1_parent",
                "1_comp_prefab_new",
                "1_comp_prefab_add",
                "monitor_w_and",
                "monitor_w_or",
                "monitor_w_not",
                "monitor_w_optional",
                "monitor_w_superset",
                "monitor_w_self_superset",
                "monitor_w_wildcard",
                "monitor_at_fini",
                "monitor_other_table",
                "monitor_component"
            ]
        }, {
            "id": "Prefab",
            "setup": true,
            "testcases": [
                "new_w_prefab",
                "new_w_count_prefab",
                "new_w_type_w_prefab",
                "add_prefab",
                "remove_prefab_after_new",
                "remove_prefab_after_add",
                "override_component",
                "override_remove_component",
                "override_2_of_3_components_1_self",
                "new_type_w_1_override",
                "new_type_w_2_overrides",
                "get_ptr_prefab",
                "iterate_w_prefab_shared",
                "match_entity_prefab_w_system_optional",
                "prefab_in_system_expr",
                "dont_match_prefab",
                "new_w_count_w_override",
                "override_2_components_different_size",
                "ignore_prefab_parent_component",
                "match_table_created_in_progress",
                "prefab_w_1_child",
                "prefab_w_2_children",
                "prefab_w_grandchild",
                "prefab_tree_1_2_1",
                "prefab_w_base_w_child",
                "prefab_w_child_w_base",
                "prefab_w_child_w_base_w_children",
                "prefab_w_child_new_w_count",                
                "prefab_auto_override_child_component",
                "ignore_on_add",
                "ignore_on_remove",
                "ignore_on_set",
                "on_set_on_instance",
                "instantiate_in_progress",
                "copy_from_prefab_in_progress",
                "copy_from_prefab_first_instance_in_progress",
                "ref_after_realloc",
                "revalidate_ref_w_mixed_table_refs",
                "no_overwrite_on_2nd_add",
                "no_overwrite_on_2nd_add_in_progress",
                "no_instantiate_on_2nd_add",
                "no_instantiate_on_2nd_add_in_progress",
                "nested_prefab_in_progress_w_count",
                "nested_prefab_in_progress_w_count_set_after_override",
                "get_ptr_from_prefab_from_new_table_in_progress",
                "match_base",
                "match_base_after_add_in_prev_phase",
                "override_watched_prefab",
                "rematch_twice",
                "add_to_empty_base_in_system",
                "inherit_disabled",
                "clone_after_inherit_in_on_add",
                "override_from_nested",
                "create_multiple_nested_w_on_set",
                "create_multiple_nested_w_on_set_in_progress",
                "single_on_set_on_child_w_override",
                "auto_override",
                "auto_override_2",
                "auto_override_nested",
                "auto_override_pair",
                "auto_override_pair_w_component",
                "auto_override_2_pairs",
                "auto_override_2_pairs_w_component",
                "auto_override_2_pairs_same_obj",
                "prefab_instanceof_hierarchy",
                "override_tag",
                "empty_prefab",
                "instanceof_0",
                "instantiate_empty_child_table",
                "instantiate_emptied_child_table",
                "override_2_prefabs",
                "rematch_after_add_instanceof_to_parent",
                "child_of_instance",
                "rematch_after_prefab_delete",
                "add_tag_w_low_id_to_instance",
                "get_type_after_base_add",
                "get_type_after_recycled_base_add",                
                "new_w_recycled_base",
                "add_recycled_base",
                "remove_recycled_base",
                "get_from_recycled_base",
                "override_from_recycled_base",
                "remove_override_from_recycled_base",
                "instantiate_tree_from_recycled_base",
                "rematch_after_add_to_recycled_base",
                "get_tag_from_2nd_base",
                "get_component_from_2nd_base",
                "get_component_from_1st_base",
                "get_component_from_2nd_base_of_base",
                "get_component_from_1st_base_of_base",
                "get_component_from_2nd_base_prefab_base",
                "get_component_from_1st_base_prefab_base",
                "get_component_from_2nd_base_of_base_prefab_base",
                "get_component_from_1st_base_of_base_prefab_base",
                "fail_on_override_final",
                "instantiate_tree_once",
                "nested_prefab_w_named_children",
                "dont_copy_children_for_non_prefab_base",
                "get_component_pair_from_base",
                "get_component_pair_from_prefab_base",
                "override_dont_inherit",
                "prefab_w_switch",
                "prefab_child_w_dont_inherit_component",
                "prefab_child_override",
                "prefab_child_override_w_exclusive_pair",
                "prefab_1_slot",
                "prefab_2_slots",
                "prefab_w_nested_slot",
                "prefab_w_mixed_slots",
                "prefab_variant_w_slot",
                "prefab_variant_w_base_slot",
                "prefab_variant_w_mixed_slots",
                "override_slot",
                "2_instances_w_slots_same_table",
                "slot_has_union",
                "slot_override",
                "base_slot_override",
                "prefab_child_w_union",
                "override_twice_w_add",
                "override_twice_w_set",
                "auto_override_copy_once",
                "always_override",
                "always_override_pair",
                "child_of_prefab_is_prefab",
                "override_exclusive",
                "override_exclusive_2_lvls",
                "hierarchy_w_recycled_id"
            ]
        }, {
            "id": "World",
            "setup": true,
            "testcases": [
                "progress_w_0",
                "progress_w_t",
                "get_tick",
                "entity_range_offset",
                "entity_range_offset_out_of_range",
                "entity_range_limit_out_of_range",
                "entity_range_add_existing_staged",
                "entity_range_add_in_range_staged",
                "entity_range_add_out_of_range_staged",
                "entity_range_out_of_range_check_disabled",
                "entity_range_check_after_delete",
                "dim",
                "phases",
                "phases_w_merging",
                "phases_match_in_create",
                "measure_time",
                "control_fps",
                "control_fps_busy_system",
                "control_fps_busy_app",
                "control_fps_random_system",
                "control_fps_random_app",
                "measure_fps_vs_actual",
                "measure_delta_time_vs_actual",
                "system_time_scale",
                "quit",
                "get_delta_time",
                "get_delta_time_auto",
                "recreate_world",
                "recreate_world_w_component",
                "no_threading",
                "no_time",
                "is_entity_enabled",
                "ensure_empty_root",
                "register_alias_twice_same_entity",
                "register_alias_twice_different_entity",
                "redefine_component",
                "delete_empty_tables_after_mini",
                "delete_empty_tables_after_init",
                "delete_1000_empty_tables",
                "delete_empty_tables_for_id",
                "use_after_delete_empty",
                "use_after_clear_empty",
                "use_after_delete_empty_w_component",
                "use_after_clear_empty_w_component",
                "use_after_clear_empty_w_component_w_lifecycle",
                "use_after_clear_unused",
                "get_mut_in_at_fini",
                "get_type_info",
                "get_type_info_after_delete_with",
                "get_type_info_after_reuse",
                "no_name_prefix_after_init",
                "set_get_context",
                "set_get_binding_context",
                "set_get_context_w_free",
                "set_get_binding_context_w_free"
            ]
        }, {
            "id": "WorldInfo",
            "testcases": [
                "get_tick",
                "table_count",
                "empty_table_count",
                "table_create_count",
                "table_delete_count",
                "id_tag_component_count",
                "id_pair_count"
            ]
        }, {
            "id": "Type",
            "setup": true,
            "testcases": [
                "type_of_1_tostr",
                "type_of_2_tostr",
                "type_of_2_tostr_no_id",
                "invalid_entity_type_expression",
                "invalid_system_type_expression",
                "get_type",
                "get_type_from_empty",
                "get_type_from_0",
                "type_to_expr_pair",
                "type_to_expr_pair_w_comp",
                "type_to_expr_scope",
                "type_to_expr_pair_w_override",
                "entity_str",
                "entity_path_str",
                "entity_instanceof_str",
                "entity_childof_str",
                "entity_pair_str",
                "entity_and_str",
                "entity_str_small_buffer",
                "role_pair_str",
                "role_and_str",
                "role_owned_str",
                "role_disabled_str",
                "large_type_expr",
                "large_type_expr_limit"
            ]
        }, {
            "id": "Commands",
            "testcases": [
                "defer_new",
                "defer_bulk_new",
                "defer_add",
                "defer_add_two",
                "defer_remove",
                "defer_remove_two",
                "defer_set",
                "defer_delete",
                "defer_twice",
                "defer_twice_in_progress",
                "run_w_defer",
                "system_in_progress_w_defer",
                "defer_get_mut_no_modify",
                "defer_get_mut_w_modify",
                "defer_modify",
                "defer_set_pair",
                "defer_clear",
                "defer_add_after_delete",
                "defer_set_after_delete",
                "defer_get_mut_after_delete",
                "defer_get_mut_after_delete_2nd_to_last",
                "defer_add_child_to_deleted_parent",
                "recreate_deleted_entity_while_deferred",
                "defer_add_to_recycled_id",
                "defer_add_to_recycled_id_w_role",
                "defer_add_to_recycled_relation",
                "defer_add_to_recycled_object",
                "defer_add_to_recycled_object_childof",
                "defer_add_to_deleted_id",
                "defer_add_to_deleted_id_w_role",
                "defer_add_to_deleted_relation",
                "defer_add_to_deleted_object",
                "defer_add_to_deleted_object_childof",
                "defer_delete_added_id",
                "defer_delete_added_id_w_role",
                "defer_delete_added_relation",
                "defer_delete_added_object",
                "defer_delete_added_object_childof",
                "discard_add",
                "discard_remove",
                "discard_add_two",
                "discard_remove_two",
                "discard_child",
                "discard_child_w_add",
                "defer_return_value",
                "defer_get_mut_pair",
                "async_stage_add",
                "async_stage_add_twice",
                "async_stage_remove",
                "async_stage_clear",
                "async_stage_delete",
                "async_stage_new",
                "async_stage_no_get",
                "async_stage_readonly",
                "async_stage_is_async",
                "register_component_while_in_progress",
                "register_component_while_staged",
                "register_component_while_deferred",
                "defer_enable",
                "defer_disable",
                "defer_delete_with",
                "defer_remove_all",
                "deferred_modified_after_remove",
                "merge_cleanup_ops_before_delete",
                "merge_nested_cleanup_ops_before_delete",
                "defer_suspend_resume",
                "create_observer_while_deferred",
                "create_query_while_deferred",
                "update_observer_while_deferred",
                "defer_set_large_component",
                "defer_while_suspend_readonly",
                "defer_while_suspend_readonly_w_existing_commands",
                "defer_add_union_relationship",
                "defer_add_existing_union_relationship",
                "defer_add_union_relationship_2_ops",
                "defer_add_existing_union_relationship_2_ops",
                "defer_remove_after_set",
                "defer_remove_after_set_w_observer",
                "defer_override_after_remove",
                "defer_override_after_remove_3_ops",
                "flush_stage_to_deferred_world",
                "add_in_observer_during_merge",
                "add_in_observer_during_merge_2_commands",
                "add_2_in_observer_while_on_remove_for_delete",
                "add_2_in_observer_while_on_remove_for_delete_child",
                "add_2_in_observer_while_on_remove_for_delete_recycled_id",
                "add_2_in_observer_while_on_remove_for_deferred_delete_recycled_id",
                "defer_add_after_clear",
                "defer_cmd_after_modified",
                "defer_remove_after_emplace_different_id",
                "defer_remove_after_set_and_emplace_different_id",
                "clear_after_add_to_nonempty",
                "remove_after_add_to_nonempty",
                "register_while_deferred_with_n_stages",
                "defer_2_sets_w_multi_observer",
                "defer_2_get_muts_w_multi_observer",
                "defer_2_get_muts_no_modified_w_multi_observer",
                "exists_remove_set",
                "absent_remove_set",
                "exists_set_remove",
                "absent_set_remove",
                "exists_remove_get_mut",
                "absent_remove_get_mut",
                "exists_get_mut_remove",
                "absent_get_mut_remove",
                "exists_set_w_get_mut",
                "absent_set_invoke_on_set",
                "exists_set_invoke_on_set",
                "defer_get_mut_no_on_set",
                "defer_existing_get_mut_no_on_set",
                "get_mut_override",
                "set_override",
                "absent_get_mut_for_entity_w_tag",
                "on_set_hook_before_on_add_for_existing_component",
                "defer_2_sets_w_observer_same_component",
                "defer_2_sets_w_observer_other_component",
                "on_remove_after_deferred_clear_and_add",
                "defer_delete_recycle_same_id",
                "observer_while_defer_suspended",
                "on_add_hook_while_defer_suspended",
                "on_set_hook_while_defer_suspended",
                "on_remove_hook_while_defer_suspended",
                "on_set_hook_batched_is_deferred"
            ]
        }, {
            "id": "SingleThreadStaging",
            "setup": true,
            "testcases": [
                "new_empty",
                "new_w_component",
                "new_empty_w_count",
                "new_component_w_count",
                "add_to_new_empty",
                "2_add_to_new_empty",
                "add_remove_same_to_new_empty",
                "add_remove_2_same_to_new_empty",
                "add_remove_same_to_new_w_component",
                "2_add_1_remove_to_new_empty",
                "2_add_1_remove_same_to_new_empty",
                "clone",
                "clone_w_value",
                "add_to_current",
                "2_add_to_current",
                "remove_from_current",
                "remove_2_from_current",
                "add_remove_same_to_current",
                "add_remove_same_existing_to_current",
                "remove_add_same_to_current",
                "remove_add_same_existing_to_current",
                "add_remove_2_same_to_current",
                "add_remove_2_same_existing_to_current",
                "remove_add_2_same_to_current",
                "remove_add_2_same_existing_to_current",
                "add_remove_different_to_current",
                "add_remove_add_same_to_current",
                "2_add_1_remove_to_current",
                "1_add_2_remove_to_current",
                "delete_current",
                "delete_even",
                "delete_new_empty",
                "delete_new_w_component",
                "set_current",
                "set_new_empty",
                "set_new_w_component",
                "set_existing_new_w_component",
                "set_new_after_add",
                "remove_after_set",
                "delete_after_set",
                "add_to_current_in_on_add",
                "remove_from_current_in_on_add",
                "remove_added_component_in_on_add",
                "match_table_created_in_progress",
                "match_table_created_w_new_in_progress",
                "match_table_created_w_new_in_on_set",
                "merge_table_w_container_added_in_progress",
                "merge_table_w_container_added_on_set",
                "merge_table_w_container_added_on_set_reverse",
                "merge_after_tasks",
                "override_after_remove_in_progress",
                "get_parent_in_progress",
                "merge_once",
                "clear_stage_after_merge",
                "get_mutable",
                "get_mutable_from_main",
                "get_mutable_w_add",
                "on_add_after_new_type_in_progress",
                "lock_table",
                "recursive_lock_table",
                "modify_after_lock",
                "get_case_from_stage",
                "get_object_from_stage",
                "add_to_world_while_readonly",
                "add_to_world_and_stage_while_readonly",
                "lookup_after_stage_count_change",
                "lookup_w_scope_after_stage_count_change",
                "with_after_stage_count_change"
            ]
        }, {
            "id": "Stresstests",
            "setup": true,
            "testcases": [
                "create_1m_set_two_components",
                "create_delete_entity_random_components",
                "set_entity_random_components",
                "create_delete_entity_random_components_staged",
                "set_entity_random_components_staged",
                "create_delete_entity_random_components_2_threads",
                "set_entity_random_components_2_threads",
                "create_delete_entity_random_components_6_threads",
                "set_entity_random_components_6_threads",
                "create_delete_entity_random_components_12_threads",
                "set_entity_random_components_12_threads",
                "create_2m_entities_1_comp",
                "create_2m_entities_bulk_1_comp",
                "add_1k_tags"
            ]
        }, {
            "id": "Table",
            "testcases": [
                "get_index",
                "get_index_not_in_table",
                "get_column",
                "get_column_for_tag",
                "get_column_for_component_after_tag",
                "get_column_w_offset",
                "get_id",
                "get_component",
                "get_pair",
                "get_from_stage",
                "get_depth",
                "get_depth_non_acyclic",
                "get_depth_2_paths",
                "get_column_size"
            ]
        }, {
            "id": "Poly",
            "testcases": [
                "iter_query",
                "iter_query_w_filter",
                "iter_world",
                "iter_world_w_filter",
                "iter_rule",
                "iter_rule_w_filter",
                "iter_filter",
                "iter_filter_w_filter",
                "on_set_poly_observer",
                "on_set_poly_query",
                "on_set_poly_system",
                "iter_filter_from_entity",
                "iter_query_from_entity",
                "iter_rule_from_entity",
                "free_filter_entity",
                "free_query_entity",
                "free_rule_entity"
            ]
        }, {
            "id": "Internals",
            "setup": true,
            "testcases": [
                "deactivate_table",
                "activate_table",
                "activate_deactivate_table",
                "activate_deactivate_reactive",
                "activate_deactivate_activate_other",
                "no_double_system_table_after_merge",
                "recreate_deleted_table",
                "create_65k_tables",
                "no_duplicate_root_table_id",
                "override_os_api_w_addon",
                "records_resize_on_override",
                "table_observed_after_add",
                "table_observed_after_remove",
                "table_observed_after_clear",
                "table_observed_after_delete",
                "table_observed_after_on_remove",
                "table_observed_after_entity_flag",
                "table_create_leak_check"
            ]
        }, {
            "id": "Error",
            "setup": true,
            "testcases": [
                "abort",
                "abort_w_param",
                "override_abort",
                "assert_true",
                "assert_false",
                "assert_false_w_param",
                "error_codes",
                "log_dbg",
                "log_log",
                "log_warning",
                "log_error",
                "last_error"
            ]
        }, {
            "id": "StackAlloc",
            "testcases": [
                "init_fini",
                "multiple_overlapping_cursors"
            ]
        }]
    }
}
